package com.xdcplus.web.service.wip;

import com.xdcplus.mes.feign.workflow.dto.ProcessTransforDTO;
import com.xdcplus.mp.service.BaseService;
import com.xdcplus.pager.vo.PageVO;
import com.xdcplus.web.common.pojo.dto.wip.WipTaskDTO;
import com.xdcplus.web.common.pojo.dto.wip.WipTaskFilterDTO;
import com.xdcplus.web.common.pojo.entity.wip.WipTask;
import com.xdcplus.web.common.pojo.vo.wip.WipTaskVO;

import java.util.List;


/**
 * 岗位任务(WipTask)表服务接口层
 *
 * @author Devin.sang
 * @since 2023-07-03 13:30:08
 */
public interface WipTaskService extends BaseService<WipTask, WipTask, WipTaskVO> {

    /**
     * 添加岗位任务(WipTask)
     *
     * @param wipTaskDTO 岗位任务(WipTaskDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveWipTask(WipTaskDTO wipTaskDTO);

    /**
     * 修改岗位任务(WipTask)
     *
     * @param wipTaskDTO 岗位任务(WipTaskDTO)
     * @return {@link Boolean} 是否成功
     */
    Boolean updateWipTask(WipTaskDTO wipTaskDTO);

    /**
     * 批量保存或更新岗位任务(WipTask)
     *
     * @param wipTaskList 岗位任务(WipTaskList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatch(List<WipTask> wipTaskList);

    /**
     * 批量保存或更新岗位任务(WipTaskDTOList)
     *
     * @param wipTaskDTOList 岗位任务(WipTaskDTOList)
     * @return {@link Boolean} 是否成功
     */
    Boolean saveOrUpdateBatchByDTOList(List<WipTaskDTO> wipTaskDTOList);

    /**
     * 删除岗位任务(WipTask)
     *
     * @param id 岗位任务(WipTask)主键
     * @return {@link Boolean} 是否成功
     */
    Boolean deleteWipTaskLogical(Long id);
    
    Boolean deleteWipTaskByIds(String ids);

    /**
     * 查询岗位任务(WipTask)
     *
     * @param wipTaskFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipTaskVO>} 状态信息
     */
    List<WipTaskVO> queryWipTaskVOList(WipTaskFilterDTO wipTaskFilterDTO);

    /**
     * 查询岗位任务(WipTask)
     *
     * @param wipTaskFilterDTO 过程状态过滤DTO
     * @return {@link PageVO<WipTaskVO>} 状态信息
     */
    PageVO<WipTaskVO> queryWipTask(WipTaskFilterDTO wipTaskFilterDTO);

    /**
     * 查询一个
     *
     * @param id 岗位任务(WipTask)主键
     * @return {@link WipTaskVO} 岗位任务(WipTask)信息
     */
    WipTaskVO queryWipTaskById(Long id);


    List<WipTaskVO> queryWipTaskByRequestIds(WipTaskFilterDTO wipTaskFilterDTO);
}
